1. Field of Invention
This invention relates to systems and methods for high performance printing of raster intensive documents.
2. Description of Related Art
Electronic documents can contain a variety of content, most types of content can be displayed or printed, some types cannot be displayed or printed. The major categories of displayable content types are text, line art, and raster images. Raster images are a sampled representation of a view, they are typically created using scanners or digital cameras. Raster images that are in a digital electronic format are comprised of picture elements. To view or print a digital document page the digital image data, whether in bitmap or vector format, must be rendered into pixels for display on a monitor or for printing on a print device. While printing capabilities are no longer limited by print engine speed, converting a page image from an application program format to a page map is a time consuming process. For instance, the high performance requirements of a “print-on-demand” environment may require the transfer of approximately 30 megabytes of data per second to the printer. For example, a page may contain text, photographs, constant color areas or graphs, such as pie charts and the like. The processing time required to generate a pagemap of such an image is significant.
Raster images captured using sampling devices, such as scanners or digital cameras, are typically stored and transmitted in the capture resolution and the capture device colorspace. Scanners and digital cameras typically utilize image capture technology that operate in RGB colorspace, printing generally uses CMYK colorspaces, hence a color transformation is often required to print raster images.
Raster images are often incorrectly sized or oriented for their intended use on a page, hence spatial transformations are often part of the process for rendering the images on a printed page. Spatial transformations typically employed in printing of color images include scaling, rotation, and mirroring.
To transform the page in an electronic format at a workstation, to a tangible document form, the application program generates a specification of the page content in a page description language. A page description language is a method of describing printed page in a printer independent format. A page description language establishes an interface between a print driver, or client, and a print server, or printer. No single standard page description language presently exists, and, as a result, a number of industry standards have emerged. Existing page description languages include, for example, PostScript™.RTM., Hewlett Packard™ Printer Control Language, Interpress™ page description language, and the like.
The application program generates the page specification in the form of a datastream of page description code which contains information regarding each of the objects on the page, the page address for each of the objects, and the format in which the objects appear on the page, such as the applicable font, shading, size, angle, and the like. The datastream is transferred from the workstation to a printer, where the datastream is converted into a pagemap. A pagemap is a collection of bits which each represent one point or dot on the page. A pagemap may also called a bitmap or raster image. To render, or translate, the digital data of a pagemap into physical output, raster image processing is used.
Raster image processing translates digital image data into a representation that can be consumed by the display device. Some raster image processing systems and methods translate digital image data on a line-by-line basis for output to a display or printer. Traditionally, printing systems have utilized a single processor which interacts with printer software to interpret a datastream and render a pagemap. The printer software interprets the objects, page addresses and print attributes in the datastream, generates bit maps of the objects, and merges the bit maps into the pagemap at the appropriate page address. An application program arranges the objects in the datastream in the order in which they were created by the application program, thus enabling the datastream to be rendered sequentially while maintaining the proper relative relationship of the objects on the page.
Known raster image processing systems and methods translate an entire image before outputting the image to a display or printer and require a large amount of memory to accommodate the entire pagemap. In addition, the processing time needed to generate multiple pages is great because an entire page must be rendered, or transformed to an optimal print image, prior to output. Further, the system must wait for the output operation to be completed before beginning to render the next page. Thus, while known systems may be beneficial in terms of maintaining the correct placement and relationship of the objects on the page, they are not practical in a high-speed printing system.
Other methods of raster image processing have been developed that segment or parse a pagemap into “bands”, and separately rasterize and output each band to a print engine. Such methods are useful when memory preservation is limited or when printer hardware does not use a page description language and a host computer system is required to interpret the page description language and deliver the image. Thus, “banding” was developed as a way to circumvent the limitations of printing hardware or software. Such methods enable multiple bands to be rasterized and output simultaneously in parallel, thereby reducing the overall processing time.
However, these methods have drawbacks which severely limit any performance benefits. Because the objects may be presented in any order, the rendering or transforming software may not allow the first band to be output until the last object is examined. This is because the last object may possibly effect the first band.
To resolve the difficulty of improving print engine performance, attempts have been made to support parallel page processing using Portable Document Format as the page description language format. Because of page independence, Portable Document Format processing can be distributed across multiple processors. The strategy has been to improve page processing time not by processing individual pages faster, but rather by dividing the print job into separate pages thereby assigning the raster image processing of each page to a different processor. Though the processing time for each page will not change, with more pages being processed at the same time, the overall processing time required may be reduced significantly.